demos: Modify "Change display" demo to use seat grabs
authorCarlos Garnacho <carlosg@gnome.org>
Thu, 28 Jan 2016 11:04:13 +0000 (12:04 +0100)
committerCarlos Garnacho <carlosg@gnome.org>
Thu, 28 Jan 2016 11:50:49 +0000 (12:50 +0100)
The window picking feature was done through a pointer grab, replace
it by a seat grab on pointing devices.

demos/gtk-demo/changedisplay.c

index f51d09159636359f6ad37a9d4f5c85777b6aa2cc..37c364f3e856a7d2a839b9143fc39ad3fd5bf40f 100644 (file)
@@ -108,6 +108,7 @@ query_for_toplevel (GdkScreen  *screen,
   GtkWidget *popup, *label, *frame;
   GdkCursor *cursor;
   GtkWidget *toplevel = NULL;
+  GdkDevice *device;
 
   popup = gtk_window_new (GTK_WINDOW_POPUP);
   gtk_window_set_screen (GTK_WINDOW (popup), screen);
@@ -124,14 +125,12 @@ query_for_toplevel (GdkScreen  *screen,
 
   gtk_widget_show_all (popup);
   cursor = gdk_cursor_new_from_name (display, "crosshair");
+  device = gtk_get_current_event_device ();
 
-  if (gdk_device_grab (gtk_get_current_event_device (),
-                       gtk_widget_get_window (popup),
-                       GDK_OWNERSHIP_NONE,
-                       FALSE,
-                       GDK_BUTTON_RELEASE_MASK,
-                       cursor,
-                       GDK_CURRENT_TIME) == GDK_GRAB_SUCCESS)
+  if (gdk_seat_grab (gdk_device_get_seat (device),
+                     gtk_widget_get_window (popup),
+                     GDK_SEAT_CAPABILITY_ALL_POINTING,
+                     FALSE, cursor, NULL, NULL, NULL) == GDK_GRAB_SUCCESS)
     {
       gboolean clicked = FALSE;